package com.tbs.easyhomemoneyserver.model.rights

import com.tbs.easyhomemoneyserver.DO.LoginInfo
import com.tbs.easyhomemoneyserver.DO.SysUser
import com.tbs.easyhomemoneyserver.enums.LoginInfoStatusEnum
import org.springframework.stereotype.Component
import org.springframework.web.context.annotation.RequestScope
import java.io.Serializable

/**
 * http 请求时候的拦截，获取基础的数据
 */

@Component
@RequestScope
data class ApiRequest(


    /**
     * api请求的权限信息
     */

    var rightInfo: ApiRightDTO? = null,

    /**
     * 登录信息
     */

    var loginInfo: LoginInfo? = null,

    var loginFlag: LoginInfoStatusEnum = LoginInfoStatusEnum.NO_ANY_LOGIN,

    /**
     * 登录用户信息
     */

    var userInfo: SysUser? = null,

    /**
     * 用户拥有的权限，key对应的权限类型 roleType，set中的value值对应的role
     */

    var userOwnsRights: UserRightTable? = null,

    /**
     * 请求的路径
     */
    var url: String? = null,

    var loginId: Long? = null
) : Serializable {
    /**
     * 用户请求是否已经登录
     */
    var login: Boolean = false

    companion object {
        private const val serialVersionUID = 7550758538852444850L
    }
}
